# 引入 Vue

// 便于调试,改成:
import Vue from 'vue/dist/vue.runtime.common.dev.js'

引入 Vue 对象,主要执行:

  • 往 Vue 函数/对象的原型上挂载初始化方法、全局方法和挂载 Vue 静态方法,做准备工作;
  • 导出 Vue 模块。

主要源码如下:

initMixin(Vue);
stateMixin(Vue);
eventsMixin(Vue);
lifecycleMixin(Vue);
renderMixin(Vue);

initGlobalAPI(Vue);

module.exports = Vue;

# initMixin 函数

主要 Vue 原型上挂载出实例初始化方法_init

# stateMixin

这一部分主要处理:数据劫持 + 双向数据绑定。

# eventsMixin

在 Vue 原型上挂载全局方法:$on$once$off$emit

# lifecycleMixin

在 Vue 原型上挂载跟 Vue 实例生命周期有关的方法:_update$forceUpdate$destroy

# renderMixin

在 Vue 原型上挂载跟渲染有关的方法:$nextTick_render

# initGlobalAPI

直接往 Vue 上挂载初始化全局 API 静态方法(非原型上挂载),可通过 Vue 直接调用:setdeletenextTickobservableusemixincomponentdirectivefilter